package com.example.hellomap.model;

import java.util.ArrayList;

import com.example.hellomap.rest.ServerInterface;
import com.example.hellomap.rest.users;

/**
 * Bejelentkez�s ellen�rz� oszt�ly
 * @author Csicsi
 *
 */
public class Authorizor {
	private static String username;
	private static ArrayList<String> errors = new ArrayList<String>();
	
	/**
	 * Visszaadja a bejelentkezett user-t, vagy null-t, ha nincs bejelentkezve senki 
	 * @return logged in user, null if none is logged in
	 */
	public static String getUser(){
		return username;
	}
	
	/**
	 * Azon hib�kat adja vissza, amik az oszt�ly legut�bbi f�ggv�nyh�v�sakor t�rt�ntek
	 * @return errors that occured during the execution of the last called function of this class
	 */
	public static String getErrors(){
		String ret = "";
		for(int i = 0; i < errors.size()-1;++i){
			ret += errors.get(i) + "\n";
		}
		if(errors.size() > 0){
			ret += errors.get(errors.size()-1);
		}
		return ret;
	}
	
	public static void checkData(String useremail, String pass){
		errors.clear();
		if(useremail.equals("") || useremail == null){
			errors.add("Felhasznóló megadása kötelező");
		}
		if(pass.equals("") || pass == null){
			errors.add("Jelszó megadása kötelező");
		}
		//Ha nincsenek hib�k, lek�rhetj�k a szervert�l az adatokat
		if(errors.size() == 0){
			try {
				ArrayList<Object> user_list = (ArrayList<Object>) ServerInterface.get("users");
				for(Object u: user_list){
					users user = (users) u;
					if( useremail.equals(user.getId()) ){
						if( pass.equals(user.getPass()) ){
							username = useremail;
							return;
						}else{
							errors.add("Hibás jelszó");
						}
					}
				}
				errors.add("Nincs ilyen felhasználó");
			} catch (Exception e) {
				e.printStackTrace();
				return;
			}
			//Easeteregg user az UI tesztel�shez:
			if(useremail.equals("Jocó") && pass.equals("123456")){
				errors.clear();
				username = "Jocó";
			}
			//itt m�g t�rt�nhetnek hib�k: rossz jelsz�, nem l�tez� felhaszn�l�
		}
	}
	
	public static void logOut(){
		username = null;
	}
}
